package com.eugene.entity;

import java.io.Serializable;
import java.util.Date;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.eugene.element.FnCalendar;

public class Varmap implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private final static Logger logger = LoggerFactory.getLogger(Varmap.class);	
	
	private VarmapId varmapId;
	
	public VarmapId getVarmapId() {
		return varmapId;
	}
	public void setVarmapId(VarmapId varmapId) {
		this.varmapId = varmapId;
	}
	
	private String positionId;
	private FnCalendar	baseDate;
	private String riskFactorId;
	private String scenarioId;
	
	public String getScenarioId() {
		return scenarioId;
	}
	public void setScenarioId(String scenarioId) {
		this.scenarioId = scenarioId;
	}

	private String hierarchyId1;
	private String hierarchyId2;
	private String hierarchyId3;
	
	private double keyRateDuration;
	private double varmap ;
	private Date lastUpdate;
	
	public String getPositionId() {
		return positionId;
	}
	public void setPositionId(String postitionId) {
		this.positionId = postitionId;
	}
	public FnCalendar getBaseDate() {
		return baseDate;
	}
	public void setBaseDate(FnCalendar baseDate) {
		this.baseDate = baseDate;
	}
	public String getRiskFactorId() {
		return riskFactorId;
	}
	public void setRiskFactorId(String riskFactorId) {
		this.riskFactorId = riskFactorId;
	}
	
	public String getHierarchyId1() {
		return hierarchyId1;
	}
	public void setHierarchyId1(String hierarchyId1) {
		this.hierarchyId1 = hierarchyId1;
	}
	public String getHierarchyId2() {
		return hierarchyId2;
	}
	public void setHierarchyId2(String hierarchyId2) {
		this.hierarchyId2 = hierarchyId2;
	}
	public String getHierarchyId3() {
		return hierarchyId3;
	}
	public void setHierarchyId3(String hierarchyId3) {
		this.hierarchyId3 = hierarchyId3;
	}
	public double getKeyRateDuration() {
		return keyRateDuration;
	}
	public void setKeyRateDuration(double keyRateDuration) {
		this.keyRateDuration = keyRateDuration;
	}
	public double getVarmap() {
		return varmap;
	}
	public void setVarmap(double varmap) {
		this.varmap = varmap;
	}
	
	
	public Date getLastUpdate() {
		return lastUpdate;
	}
	public void setLastUpdate(Date lastUpdate) {
		this.lastUpdate = lastUpdate;
	}
	
	
	//*******************************************************************	
	public Varmap(){
		
	}
	public Varmap(String positionId){
		this.positionId = positionId;
	}
	public Varmap(FnCalendar baseDate, String positionId, String rfId){
		this.baseDate = baseDate;
		this.positionId = positionId;
		this.riskFactorId =rfId;
	}
	public Varmap(FnCalendar baseDate, String scenarioId,String positionId, String rfId, double varmap){
		this.baseDate = baseDate;
		this.scenarioId = scenarioId;
		this.positionId = positionId;
		this.riskFactorId =rfId;
		this.varmap = varmap;
	}
	public Varmap(FnCalendar baseDate, String scenarioId,String positionId, String hi1,String rfId, double varmap){
		this.baseDate = baseDate;
		this.scenarioId = scenarioId;
		this.positionId = positionId;
		this.hierarchyId1 = hi1;
		this.riskFactorId =rfId;
		this.varmap = varmap;
	}
	public Varmap(FnCalendar baseDate, String positionId, String rfId, double varmap){
//		this.baseDate = baseDate;
//		this.positionId = positionId;
		this.varmapId = new VarmapId(baseDate, positionId);
		this.riskFactorId =rfId;
		this.varmap = varmap;
	}
	
//	public Varmap(FnCalendar baseDate, String positionId,  String hierId1, String rfId,double varmap){
////		this.baseDate = baseDate;
////		this.positionId = positionId;
////		this.hierarchyId1 = hierId1;
//		this.varmapId = new VarmapId(baseDate, positionId, hierId1);
//		this.riskFactorId =rfId;
//		this.varmap = varmap;
//	}
//	public Varmap(FnCalendar baseDate, String positionId,  String hierId1, String hierId2,String rfId, double varmap){
//		this.baseDate = baseDate;
//		this.positionId = positionId;
//		this.hierarchyId1 = hierId1;
//		this.hierarchyId2 = hierId2;
//		this.riskFactorId =rfId;
//		this.varmap = varmap;
//	}
	public Varmap(FnCalendar baseDate, String positionId,  String hierId1, String hierId2, String hierId3,String rfId, double varmap){
		this.baseDate = baseDate;
		this.positionId = positionId;
		this.hierarchyId1 = hierId1;
		this.hierarchyId2 = hierId2;
		this.hierarchyId3 = hierId3 ;
		this.riskFactorId =rfId;
		this.varmap = varmap;
	}
	public Varmap(FnCalendar baseDate, String positionId, String rfId, double keyRateDuration, double varmap){
		this.baseDate = baseDate;
		this.positionId = positionId;
		this.riskFactorId =rfId;
		this.keyRateDuration =keyRateDuration;
		this.varmap = varmap;
	}
	
	

	
	@Override
	public boolean equals(Object other){
		return super.equals(other); 
	}
	@Override
	public int hashCode(){
		return super.hashCode();
	}
	

}
